﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TerhelesEloszto.Common
{
	/// <summary>
	/// Egy időintervallumot reprezentál.
	/// </summary>
	public interface IInterval
	{
		/// <summary>
		/// A hét napja.
		/// </summary>
		DayOfWeek Day { get; }

		/// <summary>
		/// Az intervallum kezdete.
		/// </summary>
		int BeginHour { get; }

		/// <summary>
		/// Az intervallum vége.
		/// </summary>
		int EndHour { get; }

		/// <summary>
		/// Páros vagy páratlan hét. (true = páratlan)
		/// </summary>
		bool Parity { get; }

		/// <summary>
		/// Az intervallumhoz tartozó feladat.
		/// </summary>
		ITask RealtedTask { get; }

		/// <summary>
		/// Az intervallumhoz tartozó feladat.
		/// </summary>
		/// <returns>Az intervallumhoz tartozó feladat.</returns>
		ITask GetRealtedTask();

		/// <summary>
		/// Az intervallum azonositója.
		/// </summary>
		int ID { get; }

		/// <summary>
		/// Igaz, ha a megadott intervallummal van metszete.
		/// </summary>
		/// <param name="other">A másik intervallum.</param>
		/// <returns>Igaz, ha a megadott intervallummal van metszete.</returns>
		bool HasIntersect( IInterval other );
	}
}
